package simplefactory;

/**
 * 简单工厂(静态工厂模式)
 * 有一个抽象类定义方法
 * 每一个对象去实现这个方法
 * 工厂根据入参判断生产不同的对象
 * 简单工厂模式也叫静态工厂模式，就是工厂类一般是使用静态方法，通过接收的参数的不同来返回不同的对象实例。
 * 对于增加新产品无能为力！不修改代码的话，是无法扩展的。
 *
 * @author susj
 * @date 2022年10月27日 14:12
 */
public class SimpleFactory {
    public static Car Create(String name) {
        if ("Qr".equals(name.trim())) {
            return new Qr();
        } else if ("Byd".equals(name.trim())) {
            return new Byd();
        } else {
            return null;
        }
    }

    public static void main(String[] args) {
        Car qr = SimpleFactory.Create("Qr");
        assert qr != null;
        qr.run();
        Car byd = SimpleFactory.Create("Byd");
        assert byd != null;
        byd.run();
    }

}
